package com.youlai.boot.factory.service;

import com.youlai.boot.auth.model.dto.WxMiniAppCodeLoginDTO;
import com.youlai.boot.core.security.model.AuthenticationToken;
import com.youlai.boot.core.security.model.UserAuthCredentials;
import com.youlai.boot.factory.model.entity.FactoryMember;
import com.youlai.boot.factory.model.form.FactoryMemberForm;
import com.youlai.boot.factory.model.query.FactoryMemberQuery;
import com.youlai.boot.factory.model.vo.FactoryMemberVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 服装厂员工信息服务类
 *
 * @author youlaitech
 * @since 2025-09-28 21:51
 */
public interface FactoryMemberService extends IService<FactoryMember> {

    /**
     *服装厂员工信息分页列表
     *
     * @return {@link IPage<FactoryMemberVO>} 服装厂员工信息分页列表
     */
    IPage<FactoryMemberVO> getFactoryMemberPage(FactoryMemberQuery queryParams);

    /**
     * 获取服装厂员工信息表单数据
     *
     * @param id 服装厂员工信息ID
     * @return 服装厂员工信息表单数据
     */
     FactoryMemberForm getFactoryMemberFormData(Long id);

    /**
     * 新增服装厂员工信息
     *
     * @param formData 服装厂员工信息表单对象
     * @return 是否新增成功
     */
    boolean saveFactoryMember(FactoryMemberForm formData);

    /**
     * 修改服装厂员工信息
     *
     * @param id   服装厂员工信息ID
     * @param formData 服装厂员工信息表单对象
     * @return 是否修改成功
     */
    boolean updateFactoryMember(Long id, FactoryMemberForm formData);

    /**
     * 删除服装厂员工信息
     *
     * @param ids 服装厂员工信息ID，多个以英文逗号(,)分割
     * @return 是否删除成功
     */
    boolean deleteFactoryMembers(String ids);

    /**
     * 根据 openid 获取用户认证信息
     *
     * @param openId 用户名
     * @return {@link UserAuthCredentials}
     */
    FactoryMember getAuthCredentialsByOpenId(String openId);


    /**
     * 根据微信 OpenID 注册或绑定用户
     *
     * @param openId 微信 OpenID
     */
    boolean registerOrBindWechatUser(String openId);


    FactoryMember getCurrentUserInfo();
}
